package br.edu.sistemaacademico.builder.impl;



import br.edu.sistemaacademico.builder.SQLBuilder;

public class UpdateSQLBuilder extends SQLBuilder {
	public UpdateSQLBuilder() {
		sql = new StringBuilder("update ");
	}

	@Override
	public void buildNomeTabela() {
		sql.append(nomeTabela).append(" set ");
	}

	@Override
	public void buildColunas() {
		StringBuilder sb = new StringBuilder();
		if(colunas.get(0).equalsIgnoreCase("matricula"))
			for (int ind = 0; ind < colunas.size(); ind++) {
				sb.append(colunas.get(ind));
				sb.append(" = ");
				if (valores.get(ind).getClass().getName().equalsIgnoreCase(
						"Java.Lang.Double")
						|| valores.get(ind).getClass().getName().equalsIgnoreCase(
								"Java.Lang.Integer")
						|| valores.get(ind).getClass().getName().equalsIgnoreCase(
								"Java.Lang.Long")
						|| valores.get(ind).getClass().getName().equalsIgnoreCase(
								"Java.Lang.Float")) {
					sb.append(valores.get(ind).toString());
				} else if(valores.get(ind).toString().equals("Null")){
					sb.append(valores.get(ind).toString());
				}else {
					sb.append("'").append(valores.get(ind).toString()).append("'");
				}
				if (ind < (colunas.size() - 1))
					sb.append(", ");
			}
		else
		for (int ind = 1; ind < colunas.size(); ind++) {
			sb.append(colunas.get(ind));
			sb.append(" = ");
			if (valores.get(ind).getClass().getName().equalsIgnoreCase(
					"Java.Lang.Double")
					|| valores.get(ind).getClass().getName().equalsIgnoreCase(
							"Java.Lang.Integer")
					|| valores.get(ind).getClass().getName().equalsIgnoreCase(
							"Java.Lang.Long")
					|| valores.get(ind).getClass().getName().equalsIgnoreCase(
							"Java.Lang.Float")) {
				sb.append(valores.get(ind).toString());
			} else if(valores.get(ind).toString().equals("Null")){
				sb.append(valores.get(ind).toString());
			}else {
				sb.append("'").append(valores.get(ind).toString()).append("'");
			}
			if (ind < (colunas.size() - 1))
				sb.append(", ");
		} // for (int ind = 0; ind < columns.size(); ind++)

		sql.append(sb);

	} // public void buildColunas()

	@Override
	public void buildValores() {
	} // public void buildValores()

	public void buildCondicao() {
		sql.append(" where ");
		sql.append(condicao);
	}

}
